package com.etooling.pdm.entity;


import com.etooling.framework.svo.AbstractEntity;
import lombok.Data;

import javax.persistence.*;
import java.util.List;

@Data
@Entity
@Table(name = "t_bom_detail", schema = "pdm")
public class BomDetail extends AbstractEntity {
    public static final String TAG_EXTERNAL_PURCHASE = "外购件";
    public static final String TAG_INTERNAL_MANUFACTURE = "自制件";

    Bom bom;
    Integer level;//零件级别
    Integer seq;//排
    String goodsSpecsId;//materialId物料id
    String materialSpecsName;//物料名称，即规格名称
    String materialSpecsCode;//物料编码，即规格编码
    String materialGoodsName;//物料产品名称，稚蒙中的是叫型号
    String materialGoodsCode;//物料产品编码，稚蒙中的是叫型号
    String skuCode; //唯一产品编码
    String unit;
    Double unitNum;//单位数量
    String materialTag;//外购件,或，自制件
    String memo;
    String status;//状态
    String companyId;
    String parentId;

    @Transient
    private List<BomDetail> children;

    @Transient
    public List<BomDetail> getChildren() {
        return children;
    }

    @Transient
    public void setChildren(List<BomDetail> children) {
        this.children = children;
    }


    @ManyToOne(targetEntity = Bom.class, fetch = FetchType.EAGER)
    @JoinColumn(name = "bom_id")
    public Bom getBom() {
        return bom;
    }


    @Column(columnDefinition = "text")
    public String getMemo() {
        return memo;
    }

    //    //    @JSONField(serialize = false)
//    Bom bom;
//    String seq;
//    String extraCode;
//    String componentCode;
//    String componentName;
//    Double unitNum;//单件数
//    Double componentNum;//总数
//    String materialType;//材质ss'ta
//    String parentId;
//    String tagName;
//    String memo;
//    String status;//状态，有pr单
//    String batchId;
//    Integer importSeq;
//    String componentWeight;
//    Double cost;//单价成本
//    Double allCost;
//    Integer wmsNum;//数量
//    Integer level;//零件级别
//    String isAdd;
//    AttachFile photoFile;//图片
//    AttachFile pdfFile;//pdf文件
//    Material material; //仓库关联后的物料id
//    Material realMaterial;//修改后的真实物料
//    Double inPurchaseNum;//采购中的数量
//    Double inWarehouse;//在仓库数量
//    Double inProduceNum;//在产数
//    Double inShipNum;//
//    Double inSignForNum;//已答收数
//    Double waitNum;
//    String isSystemComplementChild;//系统自动补充的组件
//    String systemComplementSourceId;//自动补充所选用的版本
//    String inBomSeq;
//    CloudDisk cloudDisk;
//    String isStandard;
//
//
//    @Transient
//    private List<BomDetail> children;
//
//    @Transient
//    public List<BomDetail> getChildren() {
//        return children;
//    }
//
//    @Transient
//    public void setChildren(List<BomDetail> children) {
//        this.children = children;
//    }

}
